#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
配置文件
统一管理项目中的所有路径和参数配置
"""

import os
from pathlib import Path

# 项目根目录
PROJECT_ROOT = Path(__file__).parent.parent
DATA_DIR = PROJECT_ROOT
OUTPUT_DIR = Path(__file__).parent / "测试用例及分析结果"

# 数据文件路径
TRAIN_DATA_PATH = DATA_DIR / "ABC Multistate 银行流失率.csv"
TEST_DATA_PATH = DATA_DIR / "客户流失记录.csv"

# 输出文件路径
OUTPUT_FILE = "ABC银行流失客户流失预测与干预策略.csv"

# 特征映射配置
FEATURE_MAPPING = {
    '信用评分': '信用分',
    '地理位置': '国家',
    '产品数量': '银行产品编号',
    '拥有收藏卡判定': '信用卡',
    '活跃成员判定': '活跃成员',
    '评估薪资': '估计薪水'
}

# 模型参数配置
MODEL_CONFIG = {
    'n_estimators': 100,
    'class_weight': 'balanced',
    'min_samples_split': 5,
    'random_state': 42
}

# 客户价值计算权重
VALUE_WEIGHTS = {
    'balance_weight': 0.6,
    'salary_weight': 0.3,
    'products_weight': 0.1,
    'products_multiplier': 1000
}

# 价值分层阈值
VALUE_THRESHOLDS = {
    'high_value': 80000,
    'medium_value': 30000
}

# 风险等级阈值
RISK_THRESHOLDS = {
    'high_risk': 0.6,
    'medium_risk': 0.3
}

# 调整因子配置
ADJUSTMENT_FACTORS = {
    'credit_score_high': 750,
    'credit_score_low': 600,
    'credit_adjustment': 0.1,
    'active_adjustment': 0.05,
    'credit_card_adjustment': 0.03,
    'tenure_threshold': 5,
    'tenure_adjustment': 0.05
}

# 确保输出目录存在
OUTPUT_DIR.mkdir(exist_ok=True)